package com.rede.didiok.user.entity;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import org.springframework.beans.BeanUtils;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.rede.didiok.common.constant.conf.SysConf;
import com.rede.didiok.common.dto.ReportOption;

/**
 * 内容举报信息
 * 
 * @author Rede
 * @email didiok@foxmail.com
 * @date 2023-08-07 18:21:17
 */
@Data
@TableName("u_report")
public class ReportEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@TableId
	private String uid;
	/**
	 * 分类（博客/问答/评论）
	 */
	private String reportType;
	/**
	 * 被举报人uid
	 */
	private String reportUserUid;
	/**
	 * uid
	 */
	private String reportContentUid;

	/**
	 * 创建人uid
	 */
	private String createUserUid;
	/**
	 * 创建人名称
	 */
	private String createUserName;
	/**
	 * 进展状态: 0 未处理   1: 已查看  2：已处理
	 */
	private Integer progress;
	/**
	 * 状态  （0 删除  1正常）
	 */
	private Integer status;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 违规类型
	 */
	private String violationType;
	/**
	 * 举报内容
	 */
	private String content;
	/**
	 * 举报的原文
	 */
	private String reportContent;

	// 以下字段在数据库中不存在


	/**
	 * 举报人
	 */
	@TableField(exist = false)
	private UserEntity user;

	/**
	 * 被举报人
	 */
	@TableField(exist = false)
	private UserEntity reportUser;

	public ReportEntity build(ReportOption reportOption, String userUid, String reportUserId) {
		BeanUtils.copyProperties(reportOption, this, SysConf.STATUS);
		this.setReportUserUid(reportUserId);
		this.setCreateUserUid(userUid);
		return this;
	}
}
